#include "pregunta.h"

Pregunta::Pregunta(){
    init("Defecto","Defecto",1);
}

Pregunta::Pregunta(const Texto texto, const Texto rtaCorrecta, const Puntaje puntaje){
    init (texto, rtaCorrecta, puntaje);
}

void Pregunta::init (const Texto texto, const Texto rtaCorrecta, const Puntaje puntaje){
    _texto = texto;
    _rtaCorrecta = rtaCorrecta;
    _puntaje = puntaje;
}

Texto Pregunta::rtaCorrecta() const {
    return _rtaCorrecta;
}

Texto Pregunta::texto() const{
    return _texto;
}

Puntaje Pregunta::puntaje() const{
    return _puntaje;
}

bool Pregunta::operator==(const Pregunta& p) const{
    return ((rtaCorrecta()==p.rtaCorrecta())
            && (texto()==p.texto()) && (puntaje()==p.puntaje()));
}

void Pregunta::mostrar (std::ostream &os) const{
    os << "Texto: " << texto() << endl;
    os << "Respuesta: " << rtaCorrecta() << endl;
    os << "Puntaje: " << puntaje() << endl;
}

void Pregunta::guardar (std::ostream &os) const{
    char c = ENCABEZADO_ARCHIVO;
    os << c << " |" << texto() << "| |" << rtaCorrecta() << "| " << puntaje();
}

void Pregunta::cargar (std::istream &is){
    char c;
    Texto rtaCorrecta;
    Texto texto;
    Puntaje puntaje;

    is >> c;
    if (c == ENCABEZADO_ARCHIVO){

        is >> c;
        getline(is,texto,'|');

        is >> c;
        getline(is,rtaCorrecta,'|');

        is >> puntaje;

        _rtaCorrecta = rtaCorrecta;
		_texto = texto;
		_puntaje = puntaje;
    }
}



